package servlet;

import Dao.JdbcTools;
import Dao.UserMapper;
import model.Student;
import model.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.InvocationTargetException;
import java.sql.SQLException;
import java.util.List;
@WebServlet("/insertok")
public class insertok extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html;charset=utf-8");
        String name = req.getParameter("name");
        String sex = req.getParameter("sex");
        String age = req.getParameter("age");
        String major = req.getParameter("major");


//            int i = JdbcTools.update1("insert into student values(null,?,?,?,?,null)",name,sex,age,major);
        //调用数据访问层
        InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
//从配置文件中获取一个工厂对象
        SqlSessionFactory fac = new SqlSessionFactoryBuilder().build(in);
//通过工厂获取sqlsession对象
        SqlSession sqlSession = fac.openSession();
//sqlsession对象执行映射mapper文件中的sql语句
        UserMapper mapper=sqlSession.getMapper(UserMapper.class);
        Student student1 = new Student();
        student1.setName(name);
        student1.setSex(sex);
        student1.setAge(Integer.valueOf(age));
        student1.setMajor(major);
        int i = mapper.insertUser(student1);
        sqlSession.commit();
        if (i >0) {
            //获取数据库中展示数据
            List<Student> stulist= mapper.getUserById();
                //数据展示 servlet
                req.setAttribute("stulist", stulist);
                req.getRequestDispatcher("showlist").forward(req, resp);


        }

    }
}
